function K = minkowski_distance_kernel(D, p, sigma)
    % D 是一个 m x n 的疾病基因关联矩阵，每行代表一个疾病，每列代表一个基因
    % p 是闵可夫斯基距离的参数
    % sigma 是高斯核的带宽参数
    % K 将是 m x m 的核矩阵
    
    [m, n] = size(D);
    K = zeros(m, m);
    
    % 计算闵可夫斯基距离的p次幂矩阵
    for i = 1:m
        for j = 1:i-1
            dist_p = sum(abs(D(i,:) - D(j,)).^p, 2);
            K(i, j) = exp(-dist_p / (2 * sigma^2));
            K(j, i) = K(i, j); % 核矩阵是对称的
        end
        K(i, i) = 1; % 对角线上的元素设置为1
    end
end